1. 简介
什么是 OpenCV?
OpenCV(Open Source Computer Vision Library)是一个开源的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法,已成为计算机视觉领域最有力的研究工具。
在这里我们要区分两个概念:图像处理和计算机视觉的区别。图像处理侧重于「处理」图像——如增强,还原,去噪,分割等等。而计算机视觉重点在于使用计算机来「模拟」人的视觉,因此模拟才是计算机视觉领域的最终目标。
OpenCV用C++语言编写,它具有C++,Python,Java, Julia 和 MATLAB 接口,并支持Windows,Linux,Android和macOS。
OpenCV 为什么能够处理图片?
我们知道,摄像机得到的图像是连续的(即模拟信号)。运行在计算机伤的OpenCV又该如何读取和处理这些文件呢,它只认识0101啊(即二进制信号)
那么,答案就是——图像的数字化(是的,就是ADC!)
一般的图像(模拟图像)不能直接用计算机来处理,必须先将图像转化为数字图像。把模拟图像分割成一个个像素,每个像素的亮度或灰度值用一个整数表示

现实中的图像,有黑白的也有彩色的。我们需要分别设计一套方法,来让计算机能够处理我们的图片。
灰度图像数字化
灰度图像的数字化,就是将整个图像转化成一个二维数组,而每个坐标存的就是相关的灰度值(0-255)
为什么是0-255?一个字节存放8bit,而图的储存一般都是以uint8类型存放,同时计算机时按照二进制存放数值,也就是2的8次方,也就是256)

比如:

彩色图像数字化
彩色像数字化原理同灰度图像数字化,只不过彩色图像为三通道图像且可以拆分成三张同等像素的灰度图,由下图可知,每三个BGR就组成了一张图片的一列。
一般来说,在OpenCV当中,RGB的值是分别储存在三个二维数组当中。

经过数字化处理的图像,就可以正常的在OpenCV当中被处理啦~
习题
讨论题
- 查阅资料,
OpenCV主要有哪些模块,分别可以执行什么功能呢? - 什么是二值化图像,它与上文提到的灰度图像有什么区别吗?
- 我们常常提到一个概念——位深度。位深度在数字图像中究竟代表了什么呢?